package com.sjy.project.fym.user.service;

import java.util.List;

import com.sjy.framework.web.domain.Ztree;
import com.sjy.project.fym.place.domain.FyPlace;
import com.sjy.project.fym.user.domain.FyUser;

/**
 * 防疫人员信息Service接口
 * 
 * @author sjy
 * @date 2022-04-18
 */
public interface IFyUserService 
{
    /**
     * 查询防疫人员信息
     * 
     * @param userId 防疫人员信息主键
     * @return 防疫人员信息
     */
    public FyUser selectFyUserByUserId(Long userId);
    /**
     *批量场所Ids获取userNames
     * 
     * @param userIds 防疫人员信息主键
     * @return 防疫人员信息
     */
    public String selectFyUserNamesByUserIds(String userIds);
    /**
     * 查询防疫人员信息列表
     * 
     * @param fyUser 防疫人员信息
     * @return 防疫人员信息集合
     */
    public List<FyUser> selectFyUserList(FyUser fyUser);

    /**
     * 新增防疫人员信息
     * 
     * @param fyUser 防疫人员信息
     * @return 结果
     */
    public int insertFyUser(FyUser fyUser);

    /**
     * 修改防疫人员信息
     * 
     * @param fyUser 防疫人员信息
     * @return 结果
     */
    public int updateFyUser(FyUser fyUser);
    
    /**
     * 批量更新 人员归属队伍
     * @param teamId
     * @param userIds
     * @return
     */
    public int updateFyUserIds(Long teamId,String userIds); 

    /**
     * 批量删除防疫人员信息
     * 
     * @param userIds 需要删除的防疫人员信息主键集合
     * @return 结果
     */
    public int deleteFyUserByUserIds(String userIds);

    /**
     * 删除防疫人员信息信息
     * 
     * @param userId 防疫人员信息主键
     * @return 结果
     */
    public int deleteFyUserByUserId(Long userId);

    /**
     * 通过手机号查询防疫人员
     * 
     * @param phonenumber 手机号码
     * @return 防疫人员对象信息
     */
    public FyUser selectUserByPhonenumber(String phonenumber);

    public String importUser(List<FyUser> userList, Boolean isUpdateSupport);
    /**
     * 查询数据是否存在
     * @param phonenumber
     * @param openId
     * @return
     */
    public FyUser selectFyUser(String phonenumber,String openId);
    
    /**
     * 查询人员管理树
     * 
     * @param fyUser 人员信息
     * @return 所有人员信息
     */
    public List<Ztree> selectUserTree(FyUser fyUser,Long teamId,boolean checked);
}
